package com.ruoyi.project.custom.service;

import com.ruoyi.project.custom.domain.CustomGroup;

import java.util.List;

/**
 * 【请填写功能名称】Service接口
 * 
 * @author ruoyi
 * @date 2024-06-26
 */
public interface ICustomGroupService 
{
    /**
     * 查询【请填写功能名称】
     * 
     * @param id 【请填写功能名称】ID
     * @return 【请填写功能名称】
     */
    public CustomGroup selectCustomGroupById(Long id);

    /**
     * 查询【请填写功能名称】列表
     * 
     * @param customGroup 【请填写功能名称】
     * @return 【请填写功能名称】集合
     */
    public List<CustomGroup> selectCustomGroupList(CustomGroup customGroup);

    /**
     * 是否已存在相同的分组名称
     * @param group
     * @return
     */
    public String checkGroupNameUnique(CustomGroup group);

    /**
     * 检查是否存在下级
     * @param groupId
     * @return
     */
    public int hasChildByGroupId(Long groupId);

    public int checkExistNormalChildren(CustomGroup customGroup);

    public int checkExistUnNormalParent(CustomGroup customGroup);

    Long[] selectAllParentId(Long id);

    /**
     * 新增【请填写功能名称】
     * 
     * @param customGroup 【请填写功能名称】
     * @return 结果
     */
    public int insertCustomGroup(CustomGroup customGroup);

    /**
     * 修改【请填写功能名称】
     * 
     * @param customGroup 【请填写功能名称】
     * @return 结果
     */
    public int updateCustomGroup(CustomGroup customGroup);

    /**
     * 批量删除【请填写功能名称】
     * 
     * @param ids 需要删除的【请填写功能名称】ID
     * @return 结果
     */
    public int deleteCustomGroupByIds(Long[] ids);

    /**
     * 删除【请填写功能名称】信息
     * 
     * @param id 【请填写功能名称】ID
     * @return 结果
     */
    public int deleteCustomGroupById(Long id);
}
